Azure Load Testing のデバッグモードを試してみた
いわさです。
Azure Load Testing のとある機能を試そうと触っていたところ、「デバッグモード」なるものが登場していることに気が付きました。
調べてみたところ、ちょうど数週間前に追加された機能のようです。
Azure Load Testing は JMeter ベースのテストが実行され、その実行ログが確認出来ます。
どうやら上記デバッグモードを有効化するとデバッグレベルのログも出力されるようになるとのこと。
それによってテストの失敗に対するトラブルシューティングへ役立てることが出来るというもののようです。
使ってみましたので紹介します。
テスト作成時にデバッグモードを ON にするだけ
まずは Azure Load Testing リソースを構築しておきます。
ただポチポチ作るだけなので手順は割愛しますが、東日本リージョンで作成しています。
本日時点で URL を指定して簡易的にテスト作成を行うか、JMeter スクリプトを事前に準備しておいてそれをアップロードすることでテスト作成を行うかが出来ます。
デバッグモードは上記のどちらでも利用することが出来ます。
なお、実は現在プライベートプレビューで JMeter ではなく Locust のテストがサポートされています。
そちらについてはデバッグモードは使えないとのことです。
今回は URL ベースのテストを作成しましょう。
事前に App Service で適当なパブリック Web アプリケーションを構築済みです。
デバッグモードを有効化する方法ですが、テスト作成最初の Basics タブにて次のチェックボックスを ON にします。これだけ!
上記をよく見てみると「これが有効になっている場合、最初のテスト実行はデバッグモードで実行され、」と記載されています。後ほどテスト実行後に確認しますが、テスト作成時の初回のテスト実行でのみデバッグモードは有効となります。
ログを確認してみる
上記に加えて今回はデバッグモードを有効化しない場合のテストも(同じ内容で)作成し、ログ内容を確認してみたいと思います。
テストの実行が完了したら、成果物のコピーからテスト結果などをダウンロードしてみましょう。
今回は SAS URL を使ってazcopy
でローカルへ。
% azcopy copy 'https://<SAL URL ...>' ./debug --recursive
INFO: azcopy 10.24.0: A newer version 10.25.1 is available to download
INFO: Scanning...
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support
Job 875a3dca-da28-aa46-4b50-8b304b5d1af4 has started
Log file is located at: /Users/iwasa.takahito/.azcopy/875a3dca-da28-aa46-4b50-8b304b5d1af4.log
100.0 %, 3 Done, 0 Failed, 0 Pending, 0 Skipped, 3 Total, 2-sec Throughput (Mb/s): 0.0421
Job 875a3dca-da28-aa46-4b50-8b304b5d1af4 summary
Elapsed Time (Minutes): 0.0333
Number of File Transfers: 3
Number of Folder Property Transfers: 0
Number of Symlink Transfers: 0
Total Number of Transfers: 3
Number of File Transfers Completed: 3
Number of Folder Transfers Completed: 0
Number of File Transfers Failed: 0
Number of Folder Transfers Failed: 0
Number of File Transfers Skipped: 0
Number of Folder Transfers Skipped: 0
Total Number of Bytes Transferred: 10542
Final Job Status: Completed
取得出来たのでログを比較してみましょう。
左がデバッグモードを有効化したもので、右がデバッグモードを使っていないログです。
あー、ログレベル DEBUG のレコードが出力されていますね。
Azure Load Testing でテストの初回構成を行った時にデバッグモードを有効化することで、テスト構成やスクリプト内容に問題があった場合にトラブルシューティングなどに役立てることが出来そうです。いいぞ。
なおデバッグモードの仕様は以下のドキュメントに記述されており、テスト構成にかかわらず以下の動作となります。
- テストの実行は、テスト構成で指定されたエンジンの数に関係なく、1 つのエンジンで実行される
- 複数のリージョンに分散されたテストの場合、親リージョンで実行される
- テストプランの期間設定に関係なく、最大 10 分まで
テスト作成後の初回のみデバッグモードで動作する
デバッグモードを有効化してテスト作成を行おうとした際に「最初のテスト実行はデバッグモードで実行され」と記載がありましたね。
一度デバッグモードで実行されたテストは、それ以降はデバッグモードで実行されません。
テストを編集してデバッグモードを編集しようとしても次のように非活性となっており、デバッグモードの有効化は出来ませんでした。
なお、デバッグモードを有効化せずに作成したテストも、編集時にデバッグモードを有効化は出来ませんでした。
そのためこの仕様は、デバッグモードはテスト作成時にのみ有効化が可能でデバッグモードでのテスト後は無効化される。という挙動のようです。
さいごに
本日は Azure Load Testing のデバッグモードを試してみました。
テスト作成の初回は成功するか確実ではないのでなかなかうれしい機能ではないでしょうか。
あと初回以降は有効化していない時と変わらないので、ひとまず初回作成時はデフォルトで ON にしても良い気がしますね。